#include "TemplateTesting.h"
#include "../algebra/Matrix.h"
#include <string>
using namespace algebra;
void nonScalarMatrixElemsTest()
{
#ifdef ERROR_TEST_1 
	Matrix<char *,2,3> charPM1, charPM2;
#endif

#ifdef ERROR_TEST_2 
	Matrix<int *, 3,3> intPMatrix;
#endif

#ifdef ERROR_TEST_3
	std::string sa[]={"hey1","hey2","hey3","hey4"};
	Matrix<std::string,2,2> sm1, sm2,sm3;
	sm1 = sm2*sm3; // tengo que buscar la forma de requerir ciertas operaciones para que un tipo sea instanciable como parametro del template
	std::cout<<sm1;
#endif
}
void nonValidMatrixParamsTest()
{
#ifdef ERROR_TEST_4
	Matrix<T,0,0> nullMatrix;
#endif
}
void nonValidMultiplicationTest()
{

}
void nonValidDeterminantTest()
{

}

void runAllTemplateTests()
{
	nonScalarMatrixElemsTest();
	nonValidMatrixParamsTest();
	nonValidMultiplicationTest();
	nonValidDeterminantTest();
}



